Apparatus and method for creating new reports from discrete reports

ABSTRACT

A method of forming a report includes creating a report repository from database information. The database information may be from a set of databases with different formats. Consolidated report criteria are selected. Based upon the consolidated report criteria, individual reports within the report repository are analyzed to generate a consolidated report. A report field of the consolidated report may be linked to an individual report that is the source of the report field.

BRIEF DESCRIPTION OF THE INVENTION

[0001] This invention relates generally to the generation of reports. More particularly, this invention relates to a technique for using reports as a data source in order to create consolidated reports based upon individual reports.

BACKGROUND OF THE INVENTION

[0002] There are a number of commercially available products to create reports from data stored in a database. Crystal Decisions, Inc. of Palo Alto, Calif., sells a number of widely used report generation products, including Crystal Reports™, Crystal Analysis™, and Crystal Enterprise™.

[0003] Known report generation tools access a database each time a report needs to be generated. This can result in large numbers of database accesses that slow down the report generation process. In addition, since a single database is used, it is difficult to decentralize database activity.

[0004] Another limitation associated with existing report generation tools is that the creation of a new form of report commonly requires the rebuilding of the database schema, which can be complex and time consuming. Another problem with existing report generation tools is that they have difficulty merging data from multiple databases into a single report. This problem is especially acute in the case where the databases are from different vendors (e.g., Oracle®, IBM®, Microsoft®).

[0005] Databases have their data updated on a regular basis. While this is important from the standpoint of data consistency, it creates difficulties in obtaining snapshots of data at different points in time.

[0006] In view of the foregoing, it would be highly desirable to provide an improved technique for generating reports to overcome some of the limitations associated with existing report generation tools.

SUMMARY OF THE INVENTION

[0007] The invention includes a method of forming a report by defining a report repository with individual reports formed from database information. The database information may be from a set of databases with different formats. Consolidated report criteria are selected. Based upon the consolidated report criteria, individual reports within the report repository are analyzed to generate a consolidated report. A report field of the consolidated report may be linked to an individual report that is the source of the report field.

[0008] The invention also includes a method of forming a report without accessing a database. A repository of individual reports is analyzed. The repository of individual reports may be created by processing data from databases with different formats. A new report is generated from data collected during the analysis of the individual reports. Data in the new report is linked to source data within an individual report of the repository.

[0009] The invention also includes a computer readable memory storing a consolidated report generator with executable instructions to analyze a repository of individual reports. The consolidated report generator produces a new report from data analyzed within the repository of individual reports. The computer readable memory also includes a query module to create the repository of individual reports by processing data within a database or a set of databases with different formats.

[0010] The invention facilitates a technique for generating new reports without accessing a database. Therefore, new reports are available without rebuilding a database schema. The invention facilitates the creation of reports that show trends across data found in other reports. Thus, the invention is able to access and process snapshots of data. The invention allows the merging of data from multiple databases, having either similar or disparate formats. The invention reduces database accesses. In addition, the invention facilitates the decentralization of database computational activity.

BRIEF DESCRIPTION OF THE FIGURES

[0011] The invention is more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which:

[0012]FIG. 1 illustrates the operation of consolidated report generation in accordance with an embodiment of the invention.

[0013]FIG. 2 illustrates processing operations performed in accordance with an embodiment of the invention.

[0014]FIG. 3 is an example of portions of reports used to create a consolidated report in accordance with an embodiment of the invention.

[0015]FIG. 4 illustrates a user interface that may be used to create a consolidated report in accordance with an embodiment of the invention.

[0016]FIG. 5 illustrates another user interface that may be used to create a consolidated report in accordance with an embodiment of the invention.

[0017] FIGS. 6-9 illustrate specific reports that may be used to create a consolidated report in accordance with an embodiment of the invention.

[0018]FIG. 10 illustrates a consolidated report created from the information of the specific reports of FIGS. 6-9 in accordance with an embodiment of the invention.

[0019]FIG. 11 illustrates the operation of expanding information in a consolidated report in accordance with an embodiment of the invention.

[0020]FIG. 12 illustrates the result of drilling through information within the report of FIG. 11 to obtain a detailed base report.

[0021]FIG. 13 illustrates a computer network architecture that may be utilized to implement embodiments of the invention.

[0022]FIG. 14 illustrates a consolidated report architecture that utilizes a report as a root object in accordance with an embodiment of the invention.

[0023]FIG. 15 illustrates a consolidated report architecture that utilizes a root object in accordance with an embodiment of the invention.

[0024] Like reference numerals refer to corresponding parts throughout the several views of the drawings.

DETAILED DESCRIPTION OF THE INVENTION

[0025]FIG. 1 illustrates the operation of consolidated report generation in accordance with an embodiment of the invention. In accordance with the prior art, a database 20 is accessed by a conventional report generation tool 22 to produce a set of reports 24A-24N. In the prior art, if a new report is to be created, the report generation tool 22 must be used to access the database 20 to create a new report.

[0026] In accordance with the invention, a consolidated report generator 26 is used to produce a consolidated report 28 based upon the information contained in the previously generated reports 24A-24N. In other words, the consolidated report generator 26 does not access the data in the database 20; rather, the consolidated report generator 26 uses the data in the reports 24A-24N as a data source to produce a new consolidated report 28.

[0027]FIG. 2 illustrates processing operations associated with an embodiment of the invention. Initially, a report repository of individual reports is created or defined from database information (block 30). A report repository is simply a collection of reports. The individual reports may be created with a conventional report generation tool, such as Crystal Reports™, Crystal Analysis™, or Crystal Enterprise™, sold by Crystal Decisions, Inc., Palo Alto, Calif.

[0028] By way of example, FIG. 3 illustrates four individual reports 32A-32D. Each individual report provides information for a quarter of a calendar year. Thus, there is a first quarter report 32A, a second quarter report 32B, a third quarter report 32C, and a fourth quarter report 32D. In this example, each report 32 has a customer field 34, an employee field 36, an employee address field 38, and an orders field 40, as shown in FIG. 3. The orders field 40 has a set of sub-fields, including an order ID field 42, an order amount field 44, a customer ID field 46, a quarter sales field 48, an order date field 50, a required date field 52, a ship date field 54, a courier website field 56, a ship via field 58, a shipped field 60, a Purchase Order number field 62, and a payment received field 64.

[0029] Returning to FIG. 2, the next processing operation is to select consolidated report criteria (block 70). FIG. 4 illustrates a graphical user interface 72 that may be used in accordance with an embodiment of the invention to facilitate this operation. The graphical user interface 72 may be used to display a series of reports in a repository of reports. In this example, the available reports 32A-32D correspond to the reports 32A-32D shown in FIG. 3. In one embodiment of the invention, specific fields in the selected reports are then selected. The graphical user interface 74 of FIG. 5 shows a set of fields corresponding to the fields illustrated in the exemplary reports of FIG. 3. In this example, the quarter sales filed 48 is selected.

[0030] Alternate techniques may be used to select consolidated report criteria. In another embodiment of the invention, a prompt is provided for a data source. For example, the data source may be a report file path or a path of a directory that contains multiple report files. Preferably, a data context for a report path can be defined to limit the amount of viewed information. For example, a special character (e.g., “?”) can be appended to a report path to limit information to selected fields of a report. Thus, for example, assuming a base report grouped by region, to see only the Quarterly sales records for the U.S. in a report, the following report path and data context can be used: c:\\Directory Name\ReportName.rpt?datacontext=/Country[US]. This example assumes a base report that is grouped by country and customer. Specifying the sum of sales in a country within the base report results a consolidated report listing this information. One can generate trend data for all countries (e.g., datacontext=/Country[*]) or trend data for a selected country (e.g., datacontext=/Country[US]).

[0031] In one embodiment of the invention, a consolidated report of the invention is created through the following instruction sequence:

[0032] 1. On a standard toolbar, click New.

[0033] 2. In a Reports Gallery, click As a Blank Report and then OK.

[0034] 3. In a Database dialog box, expand Create New Connection and click OLE DB.

[0035] 4. From a Provider list, select a Rowset Provider and click Next.

[0036] 5. In a Data Source field, enter the name of the reports file(s) to use in the consolidated report.

[0037] 6. Click Finish. (A data source called Reports is added to the OLE DB folder.)

[0038] 7. Add the Reports data source to the Selected Tables area and click OK.

[0039] At this point, a consolidated data source is ready for use as any other data source for report creation. If the Reports node in the Field Explorer is expanded, the fields from each report specified as a data source may be displayed.

[0040] Preferably, special fields are provided to track specific information about the report fields in the data source. Example special fields include:

[0041] Report Path—This field shows the path and name of the report for the current record.

[0042] Group Path—This field shows the group level and record number of the current record in the report.

[0043] Record Number—This field shows the record number of the current record in the report.

[0044] Data Date—This field shows the date the data was last refreshed in the report.

[0045] Data Time—This field shows the time the data was last refreshed in the report.

[0046] Returning now to FIG. 2, the next processing operation is to analyze individual reports within a report repository based upon selected consolidated report criteria (block 80). Executable code is invoked to perform this operation. This results in the generation of a consolidated report (block 82).

[0047]FIG. 3 illustrates a consolidated report 28. In particular, the figure illustrates a consolidated report 28 with a first quarter sales field 90, a second quarter sales field 92, a third quarter sales field 94, a fourth quarter sales field 96, and a total sales field 98, which represents the sum of the individual sales fields. Observe here that the consolidated report 28 was created based upon data in individual reports 32A-32D, instead of accessing a database. Therefore, a new report is available without rebuilding the database schema.

[0048] The consolidated report 28 shows trends across data found in time stamped instances of other reports. Thus, the consolidated report 28 has captured snapshots of data over an extended period of time. It should be further appreciated that the database source of the individual reports used to generate the consolidated report 28 is irrelevant. Thus, the consolidated report 28 can be created from individual reports that were derived from disparate databases. Accordingly, the invention allows the merging of data from multiple databases, having either similar or disparate formats. It can also be appreciated that the invention reduces database accesses as new reports are generated from individual reports, not database accesses. In addition, the invention facilitates the decentralization of database computational activity. For example, individual reports may be created in branch offices and then transmitted to a central office. At the central office, a consolidated report is generated based upon the received reports from the branch offices.

[0049] Returning once again to FIG. 2, a final optional operation is displayed. In particular, an operation may be implemented to drill through to a source report (block 100). Preferably, each field in a consolidated report 28 has an associated link to its source report. By activating this link, the user is returned to the source report, thereby allowing drill down processing. Arrow 102 of FIG. 3 illustrates a link between the first quarter sales field 90 and its corresponding field 48 in source report 32A.

[0050] Now that the general features of the invention have been described, attention turns to a more specific example for the purpose of more fully illustrating the features and advantages of the invention. FIG. 6 illustrates a quarterly sales report. As shown in the design/preview window 103, this sales report specifies quarterly sales for North America (NA), Europe (EU), and the Asia Pacific (Asia Pac). The report window 104 illustrates a breakdown for North American sales by country, including the U.S. and Canada. The report also reflects a total sales amount for North America for the first calendar quarter ending Mar. 31, 2002. Similarly, the report reflects a breakdown for European sales by country, including England, France, and Germany. A total sales volume for the European region for the first quarter is also supplied. Similar information is provided for the Asia Pacific region. FIGS. 7-9 reflect the same information for the subsequent quarters of 2002.

[0051] Using the previously described techniques, a consolidated report can be produced from the individual reports of FIGS. 6-9. The resultant consolidated report is shown in FIG. 10. The consolidated report 105 of FIG. 10 illustrates quarterly sales and total sales for each region (i.e., Asia Pacific, Europe, and North America). The tabular numeric data is also supplied in a graph 106 in this example.

[0052] In accordance with an embodiment of the invention, the reports used to generate the regional data can be invoked. By way of example, FIG. 11 illustrates an expanded regional data report 107. In this example, the expanded regional data is for Europe and includes individual quarterly and total sales for England, France, and Germany.

[0053] In accordance with an embodiment of the invention, further expansion or drill through to source reports can be accomplished. For example, if the link associated with the third quarter sales for France is activated, then the user receives the report of FIG. 8. If the user activates the France link 108 of FIG. 8, then a detailed sales report for France in the third quarter is supplied, as shown in FIG. 12. The detailed report 109 of FIG. 12 provides information on the individual sales transactions that produced the third quarter sales total (i.e., $765,332.34) for France.

[0054]FIG. 13 illustrates a computer network architecture that may be utilized to implement embodiments of the invention. The computer network architecture 110 includes a client computer 112. The client computer has a central processing unit 114 connected to a network connection circuit 116 via a bus 118. The network connection circuit 116 is also connected to a network transport medium 119, which may be any wired or wireless transport medium. A set of input/output devices (not shown) is also attached to the bus 118 to allow a user to input and view data.

[0055] A memory 120 is also connected to the bus 118. The memory 120 stores a set of executable programs. One executable program is a query module 122 (e.g., a report generation tool). The query module 122 utilizes standard techniques to produce a set of reports 124A-124N.

[0056] The query module 122 may access one or more databases resident on the client computer 112. However, in this example, the query module 122 accesses one or more databases resident on server computer 130. Server computer 130 includes a central processing unit 132 connected to a network connection circuit 134 via a bus 136. The network connection circuit 134 is also connected to the network transport medium 119. A set of input/output devices (not shown) is also attached to the bus 136 to allow a user to ipnut and view data. A memory 138 is also connected to the bus 136. The memory 138 stores one or more databases 140A-140N.

[0057] A consolidated report generator 150 may be executed from either the server computer 130 or the client computer 112. In this example, the client computer 112 includes a consolidated report generator 150 with executable instructions to implement the operations described herein. This results in the creation of one or more consolidated reports 152A-152N. Additional consolidated reports may be formed from the information contained in individual consolidated reports.

[0058]FIG. 14 illustrates a consolidated report architecture that utilizes a report as a root object in accordance with an embodiment of the invention. A report object 160 is used to produce report instances 162A-162N. The consolidated report generator 150 uses the report object 160 to define fields for a consolidated report, as discussed in connection with FIGS. 3-5. The consolidated report generator 150 also produces a consolidated report 164 based upon data contained within the report instances 162A-162N, as previously discussed.

[0059]FIG. 15 illustrates a consolidated report architecture that utilizes a root object in accordance with an embodiment of the invention. A report object 160 is used to produce report instances 162A-162N. The consolidated report generator 150 is used to produce a first instance of a consolidated report 164 and a second instance of a consolidated report 166 based upon the data in the report instances 162. A consolidated report object 168 operates as a parent object to the consolidated report instances 164, 166.

[0060] Different object architectures can be used to implement various consolidated report functionality. For example, consolidated reports can be programmed to run at a scheduled time. At the scheduled time, the new object inherits the superset of all instances of the parent. Security may also be implemented through various object architectures. For example, a user may be prohibited from generating a consolidated report unless the individual has access to the parent object.

[0061] An embodiment of the present invention relates to a computer storage product with a computer-readable medium having computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and holographic devices; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using Java, C++, or other object-oriented programming language and development tools. Another embodiment of the invention may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions.

[0062] The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention. 

1. A method of forming a report without accessing a database, comprising: analyzing a repository of individual reports; and generating a new report from data collected during said analyzing.
 2. The method of claim 1 further comprising: creating said repository of individual reports by processing data within a database.
 3. The method of claim 2 wherein creating includes creating said repository of individual reports as time stamped instances of data within said database.
 4. The method of claim 3 wherein generating includes generating said new report with data from time stamped instances of said individual reports.
 5. The method of claim 1 further comprising: creating said repository of individual reports by processing data from a plurality of databases with different formats.
 6. The method of claim 1 wherein analyzing includes analyzing at least one common attribute shared by said individual reports within said repository.
 7. The method of claim 1 further comprising: linking data in said new report to source data within an individual report of said repository.
 8. A method of forming a report, comprising: defining a report repository with individual reports produced from database information; selecting consolidated report criteria; and analyzing, based upon said consolidated report criteria, said individual reports to generate a consolidated report.
 9. The method of claim 8 wherein defining includes creating a report repository with individual reports produced from database information selected from a plurality of databases.
 10. The method of claim 9 wherein defining includes creating a report repository with individual reports produced from database information selected from a plurality of databases with different formats.
 11. The method of claim 8 wherein selecting includes selecting a report field common to said individual reports within said report repository.
 12. The method of claim 111 wherein selecting includes selecting a report field chosen from a report path, a group path, a record number, data date, and data time.
 13. The method of claim 11 further comprising connecting from a report field of said consolidated report to an individual report that is the source of said report field.
 14. A computer readable memory, comprising: a consolidated report generator with executable instructions to analyze a repository of individual reports and generate a new report from data analyzed within said repository of individual reports.
 15. The computer readable memory of claim 14 further comprising a query module to create said repository of individual reports by processing data within a database.
 16. The computer readable memory of claim 14 wherein said query module processes data from a plurality of databases with different formats.
 17. The computer readable memory of claim 14 wherein said consolidated report generator analyzes at least one common attribute shared by said individual reports within said repository.
 18. The computer readable memory of claim 14 wherein said consolidated report generator links data in said new report to source data within an individual report of said repository. 